home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
unixlib.lha
/
unix
/
src
/
message.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-10-10
|
2KB
|
77 lines
#include "amiga.h"
#include <intuition/intuition.h>
#include <stdarg.h>
static struct EasyStruct msg =
{
sizeof(struct EasyStruct),
0,
NULL,
NULL,
"Ok",
};
static void message(char *format, long *args)
/* Display a message which is as visible as possible (either to the console
or to as a requester).
Assume very little about library state */
{
LONG msg_EasyRequestArgs(struct Window *window, struct EasyStruct *easyStruct,
ULONG * idcmpPtr, APTR args);
#pragma libcall msg_IntuitionBase msg_EasyRequestArgs 24C BA9804
BPTR fh;
int close = FALSE;
extern char *_ProgramName;
extern struct WBStartup *WBenchMsg;
fh = _us->pr_CES;
if (!fh)
if (!WBenchMsg && (fh = Open("console:", MODE_OLDFILE)))
close = TRUE;
if (fh) {
FPrintf(fh, "%s: ", _ProgramName);
VFPrintf(fh, format, (long *) args);
FPutC(fh, '\n');
if (close)
Close(fh);
} else {
struct Window *win = (struct Window *) _us->pr_WindowPtr;
if (win != (struct Window *) -1) {
struct Library *msg_IntuitionBase = OpenLibrary("intuition.library", 37);
if (msg_IntuitionBase) {
msg.es_Title = _ProgramName;
msg.es_TextFormat = format;
msg_EasyRequestArgs(win, &msg, 0, args);
CloseLibrary(msg_IntuitionBase);
}
}
}
}
void _message(char *format,...)
/* Display a message which is as visible as possible (either to the console
or to as a requester).
Assume very little about library state */
{
va_list args;
va_start(args, format);
message(format, (long *) args);
}
void _fail(char *format,...)
/* Display a message which is as visible as possible (either to the console
or to as a requester).
Assume very little about library state.
Exit with error code RETURN_FAIL after that. */
{
va_list args;
va_start(args, format);
message(format, (long *) args);
exit(RETURN_FAIL); /* The library should always be cleanup-able */
}